// stores/userStore.js
import { defineStore } from 'pinia'
import { set } from 'store'

export const useUserStore = defineStore('user', {
  state: () => ({
    userInfo: JSON.parse(sessionStorage.getItem('userInfo')) || null,
    token: sessionStorage.getItem('token') || null,
  }),
  actions: {
    setUserInfo(user) {
      this.userInfo = user
      this.token = user.token 
      sessionStorage.setItem('userInfo', JSON.stringify(user))
      sessionStorage.setItem('token', user.token)
    },
    
    // 仅更新用户信息
    updateUserInfo(user) {
      this.userInfo = user
      sessionStorage.setItem('userInfo', JSON.stringify(user))
      // 注意：此方法不会更新token，如需同时更新token，请使用setUserInfo
    },

    // 仅更新 token
    updateToken(token) {
      this.token = token
      sessionStorage.setItem('token', token)
    },
    
    clearUserInfo() {
      this.userInfo = null
      this.token = null
      sessionStorage.removeItem('userInfo')
      sessionStorage.removeItem('token')
    },
    
    // 新增：强制刷新store数据的方法
    refreshStore() {
      const userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
      const token = sessionStorage.getItem('token')
      
      if (userInfo) {
        this.userInfo = userInfo
      }
      
      if (token) {
        this.token = token
      }
    }
  }
})